package com.campusbackend.service;

import com.campusbackend.entity.EventManagement;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * <p>
 * 赛事管理表 服务类
 * </p>
 *
 * @author yezi
 * @since 2025-07-29
 */
public interface EventManagementService extends IService<EventManagement> {

    /**
     * 分页查询赛事
     * @param page 页码
     * @param size 每页数量
     * @param status 状态筛选（可选）
     * @return 分页结果
     */
    IPage<EventManagement> getEventPage(int page, int size, Integer status);

    /**
     * 根据ID查询赛事详情
     * @param id 赛事ID
     * @return 赛事详情
     */
    EventManagement getEventById(Long id);

    /**
     * 创建赛事
     * @param title 标题
     * @param content 内容
     * @param summary 摘要
     * @param status 状态
     * @param publisherId 发布者ID
     * @return 创建的赛事
     */
    EventManagement createEvent(String title, String content, String summary, 
                               Integer status, Long publisherId);

    /**
     * 更新赛事
     * @param id 赛事ID
     * @param title 标题
     * @param content 内容
     * @param summary 摘要
     * @param status 状态
     * @return 更新后的赛事
     */
    EventManagement updateEvent(Long id, String title, String content, String summary, Integer status);

    /**
     * 删除赛事（软删除）
     * @param id 赛事ID
     * @return 删除结果
     */
    boolean deleteEvent(Long id);

    /**
     * 增加浏览次数
     * @param id 赛事ID
     */
    void incrementViewCount(Long id);
}
